+Wed Mar 10 22:48:15 2004 Jonathan Blandford <jrb@gnome.org>
+
+ * Sync from upstream
+
Sun Feb 8 19:05:16 2004 Manish Singh <yosh@gimp.org>
* xdgmimeint.h: declare _xdg_utf8_skip as extern to prevent multiple
* Boston, MA 02111-1307, USA.
*/
-#include <config.h>
#include "xdgmime.h"
#include "xdgmimeint.h"
#include "xdgmimeglob.h"
initted = 0;
}
}
+
+int
+xdg_mime_get_max_buffer_extents (void)
+{
+ xdg_mime_init ();
+
+ return _xdg_mime_magic_get_buffer_extents (global_magic);
+}
extern "C" {
#endif /* __cplusplus */
-extern const char *xdg_mime_type_unknown;
-#define XDG_MIME_TYPE_UNKNOWN xdg_mime_type_unknown
-
#ifdef XDG_PREFIX
#define XDG_ENTRY(func) _XDG_ENTRY2(XDG_PREFIX,func)
#define _XDG_ENTRY2(prefix,func) _XDG_ENTRY3(prefix,func)
#define xdg_mime_get_mime_type_for_file XDG_ENTRY(get_mime_type_for_file)
#define xdg_mime_get_mime_type_from_file_name XDG_ENTRY(get_mime_type_from_file_name)
#define xdg_mime_is_valid_mime_type XDG_ENTRY(is_valid_mime_type)
+#define xdg_mime_get_max_buffer_extents XDG_ENTRY(get_max_buffer_extents)
#define xdg_mime_type_unknown XDG_ENTRY(type_unknown)
#endif
+extern const char *xdg_mime_type_unknown;
+#define XDG_MIME_TYPE_UNKNOWN xdg_mime_type_unknown
+
const char *xdg_mime_get_mime_type_for_data (const void *data,
size_t len);
const char *xdg_mime_get_mime_type_for_file (const char *file_name);
const char *xdg_mime_get_mime_type_from_file_name (const char *file_name);
int xdg_mime_is_valid_mime_type (const char *mime_type);
+int xdg_mime_get_max_buffer_extents (void);
void xdg_mime_shutdown (void);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
* Boston, MA 02111-1307, USA.
*/
-#include <config.h>
#include "xdgmimeint.h"
#include <ctype.h>
#include <string.h>
#define TRUE (!FALSE)
#endif
-const unsigned char _xdg_utf8_skip_data[256] = {
+static const unsigned char _xdg_utf8_skip_data[256] = {
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
* Boston, MA 02111-1307, USA.
*/
-#include <config.h>
#include <assert.h>
#include "xdgmimemagic.h"
#include "xdgmimeint.h"
*end_of_file = TRUE;
break;
}
- if (! isdigit ((char) c))
+ if (! isdigit (c))
{
ungetc (c, magic_file);
break;
size_t len,
int indent)
{
- while (matchlet != NULL && matchlet->indent == indent)
+ while ((matchlet != NULL) && (matchlet->indent == indent))
{
if (_xdg_mime_magic_matchlet_compare_to_data (matchlet, data, len))
{
- if (matchlet->next == NULL ||
- matchlet->next->indent <= indent)
+ if ((matchlet->next == NULL) ||
+ (matchlet->next->indent <= indent))
return TRUE;
if (_xdg_mime_magic_matchlet_compare_level (matchlet->next,
mime_magic->max_extent = max_extent;
}
+static XdgMimeMagicMatchlet *
+_xdg_mime_magic_matchlet_mirror (XdgMimeMagicMatchlet *matchlets)
+{
+ XdgMimeMagicMatchlet *new_list;
+ XdgMimeMagicMatchlet *tmp;
+
+ if ((matchlets == NULL) || (matchlets->next == NULL))
+ return matchlets;
+
+ new_list = NULL;
+ tmp = matchlets;
+ while (tmp != NULL)
+ {
+ XdgMimeMagicMatchlet *matchlet;
+
+ matchlet = tmp;
+ tmp = tmp->next;
+ matchlet->next = new_list;
+ new_list = matchlet;
+ }
+
+ return new_list;
+
+}
+
static void
_xdg_mime_magic_read_magic_file (XdgMimeMagic *mime_magic,
FILE *magic_file)
break;
case XDG_MIME_MAGIC_MAGIC:
state = _xdg_mime_magic_parse_magic_line (magic_file, match);
- if (state == XDG_MIME_MAGIC_SECTION)
- _xdg_mime_magic_insert_match (mime_magic, match);
+ if (state == XDG_MIME_MAGIC_SECTION)
+ {
+ match->matchlet = _xdg_mime_magic_matchlet_mirror (match->matchlet);
+ _xdg_mime_magic_insert_match (mime_magic, match);
+ }
else if (state == XDG_MIME_MAGIC_EOF || state == XDG_MIME_MAGIC_ERROR)
_xdg_mime_magic_match_free (match);
break;